// ==============================================================================
// FileName : mux3.v
// Function : A three-input mux model for Lab04, for use in shift register
//            models. Modified by adding one more input to mux2.
//
// -----------------------------------------------------------------------------
// Author   : QilinZhao
// Version  : v-1.0
// Date     : 2013-08-29
// E-mail   : forqilin@163.com
// Copyright: QiXin Studio
// =============================================================================

module mux3 (output Z, input[1:0] Sel,
             input In1, In2, In3
            );
reg Zreg;

assign Z = Zreg;

// Coding Style--------------------------
// always@(*) //- synthsis
always@(Sel, In1, In2, In3)
begin
  case (Sel)
    2'b00 : Zreg = In1;
    2'b01 : Zreg = In2;
    //2'b10 : Zreg = In3; 
    default : Zreg = In3; // coding style: 2'b10, 2'b11
  endcase
end

// assign z = sel ? in1 : in2;
endmodule // mux3
